package ai.people.netmon.framework.domain.twitter.view.request;

import ai.people.netmon.framework.domain.twitter.view.entity.TwitterAccountView;
import ai.people.netmon.framework.model.request.PageKeyWordsRequest;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.apache.commons.lang3.StringUtils;

/**
 * 用户请求
 *
 * @author yuanqinglong
 * @date 2022/2/25 10:58
 */
@Data
@EqualsAndHashCode(callSuper = true)
public class QueryViewRequest extends PageKeyWordsRequest {

    /**
     * 有效性，-1：查询默认为空 0:未确定，2表示无效 1表示有效
     */
    private String validity;
    /**
     * 重要度(-1：查询默认为空 0：未确定，3：不重要，6：普通，  9：一般重要，12：比较重要，15非常重要；)
     */
    private String importanceDeg;
    /**
     * 采集状态（-1：查询默认为空 0 待采集，2采集中，4已采集）
     */
    private String collectionStatus;


    /**
     * 创建查询条件
     */
    public LambdaQueryWrapper<TwitterAccountView> createQueryCondition() {
        LambdaQueryWrapper<TwitterAccountView> lambdaQuery = Wrappers.lambdaQuery();
        if (checkDefault(validity)) {
            lambdaQuery.eq(TwitterAccountView::getValidity, validity);
        }
        if (checkDefault(importanceDeg)) {
            lambdaQuery.eq(TwitterAccountView::getImportanceDeg, importanceDeg);
        }
        if (checkDefault(collectionStatus)) {
            lambdaQuery.eq(TwitterAccountView::getCollectionStatus, collectionStatus);
        }
        String searchKeywords = this.getSearchKeywords();
        if (StringUtils.isNotBlank(searchKeywords)){
            lambdaQuery.and(x -> x.like(TwitterAccountView::getAccountId, searchKeywords).or().like(TwitterAccountView::getAccountName, searchKeywords).or().like(TwitterAccountView::getAccountLink, searchKeywords));
        }
        return lambdaQuery;
    }

}
